package br.ufal.ic.sd.mom.cliente.core;

import java.util.ArrayList;
import java.util.List;

public class TratadorMensagemSaida {
	
	private List<String> mensagens;
	private Boolean lock = false;
	
	public TratadorMensagemSaida(){
		mensagens = new ArrayList<String>();
	}
	
	public synchronized void addMensagem(String mensagem){
		
		while(lock == true){
			try {
				wait();
			} catch (InterruptedException e) {
				continue;
			}
		}
		
		this.mensagens.add(mensagem);
		lock = true;
		notifyAll();
	}
	
	public synchronized String getMensagem(){
		
		while(lock == false){
			try {
				wait();
			} catch (InterruptedException e) {
				continue;
			}
		}
		
		lock = false;
		notifyAll();
		if(this.mensagens.isEmpty()){
			return "";
		}else{
			String t = this.mensagens.get(0);
			this.mensagens.remove(0);
			return t;
		}
		
	}

}
